package dancetiktokenumsmysql

const (
	//DanceElementPubilbType  = 0
	//DanceElementPrivateType = 1
	//DanceElementNoneType    = 2

	DanceElementTypeClothing = 1 //时装
	DanceElementTypeOrnament = 2 //装饰品
	DanceElementTypeProps    = 3 //道具

	//时装
	DanceElementClothingHair  = 1 //头发
	DanceElementClothingFace  = 2 // 脸
	DanceElementClothingUpper = 5 // 上半身
	DanceElementClothingLower = 6 // 下半身fa
	DanceElementClothingShoes = 8 // 鞋子
	//组合
	DanceElementClothingSuitHF    = 21 // 组合 - 头发 + 脸
	DanceElementClothingSuitHFJ   = 22 // 组合 - 头发 + 脸 + 上身
	DanceElementClothingSuitHFJP  = 23 // 组合 - 头发 + 脸 + 上身 + 下身
	DanceElementClothingSuitHFJPS = 24 // 组合 - 头发 + 脸 + 上身 + 下身 + 鞋
	DanceElementClothingSuitHJ    = 25 // 组合 - 头发 + 上身
	DanceElementClothingSuitHJP   = 26 // 组合 - 头发 + 上身 + 下身
	DanceElementClothingSuitHJPS  = 27 // 组合 - 头发 + 上身 + 下身 + 鞋
	DanceElementClothingSuitJP    = 28 // 组合 - 上身 + 下身
	DanceElementClothingSuitJPS   = 29 // 组合 - 上身 + 下身 + 鞋
	DanceElementClothingSuitPS    = 30 // 组合 - 下身 + 鞋

	//饰品
	DanceElementOrnamentHand                   = 1  // 手持
	DanceElementOrnamentBack                   = 2  // 背后
	DanceElementOrnamentBase                   = 3  // 底座
	DanceElementOrnamentDjBooth                = 4  // Dj台
	DanceElementOrnamentDjTitle                = 5  // 称号
	DanceElementOrnamentNickname               = 6  // 昵称特效
	DanceElementOrnamentBadge                  = 7  // 徽章
	DanceElementOrnamentRing                   = 8  // 戒指
	DanceElementOrnamentAvatarFrame            = 9  // 头像框
	DanceElementOrnamentFractionBackgroundCard = 10 // 分数背景卡
	DanceElementOrnamentRoomBackgroundCard     = 11 // 房间背景卡
	DanceElementOrnamentDynamicBackgroundCard  = 12 // 动态背景卡
	DanceElementOrnamentCpRing                 = 13 // 情侣戒指
	DanceElementOrnamentCpInfoCard             = 14 // 情侣信息卡
	DanceElementOrnamentCpRecordCard           = 15 // 情侣登记证
	DanceElementOrnamentChatEmojiPack          = 16 // 聊天表情包
	//道具
	DanceElementPropsRenameCard       = 2 // 改名卡
	DanceElementPropsHorn             = 3 // 喇叭
	DanceElementPropsDoubleExperience = 4 // 双倍经验卡
	DanceElementPropsSkinDye          = 5 // 皮肤染色剂
	DanceElementPropsIntimacy         = 6 // 亲密度
	DanceElementPropsWeddingCard      = 7 // 喜帖
	DanceElementPropsLotteryGiftPack  = 8 // 抽奖礼包
	DanceElementPropsSticker          = 9 // 贴纸
	DanceElementPropsSeed             = 1 // 种子

	DanceElementSexMan   = 1 //Man
	DanceElementSexWoman = 2 //Woman
)

type DanceElementEnums struct {
}

var DanceElementEnumsObject DanceElementEnums

func (e DanceElementEnums) ClothingTwo() []int {
	return []int{
		DanceElementClothingHair,
		DanceElementClothingFace,
		DanceElementClothingUpper,
		DanceElementClothingLower,
		DanceElementClothingShoes,
		DanceElementClothingSuitHF,
		DanceElementClothingSuitHFJ,
		DanceElementClothingSuitHFJP,
		DanceElementClothingSuitHFJPS,
		DanceElementClothingSuitHJ,
		DanceElementClothingSuitHJP,
		DanceElementClothingSuitHJPS,
		DanceElementClothingSuitJP,
		DanceElementClothingSuitJPS,
		DanceElementClothingSuitPS,
	}
}

func (e DanceElementEnums) ClothingMap() map[int]string {
	m := make(map[int]string)
	for _, s := range e.ClothingTwo() {
		m[s] = e.ClothingString(s)
	}
	return m
}

func (e DanceElementEnums) ClothingString(tag int) string {
	switch tag {
	case DanceElementClothingHair:
		return "头发"
	case DanceElementClothingFace:
		return "脸"
	case DanceElementClothingUpper:
		return "上半身"
	case DanceElementClothingLower:
		return "下半身"
	case DanceElementClothingShoes:
		return "鞋子"
	case DanceElementClothingSuitHF:
		return "头发 + 脸"
	case DanceElementClothingSuitHFJ:
		return "头发 + 脸 + 上身"
	case DanceElementClothingSuitHFJP:
		return "头发 + 脸 + 上身 + 下身"
	case DanceElementClothingSuitHFJPS:
		return "头发 + 脸 + 上身 + 下身 + 鞋"
	case DanceElementClothingSuitHJ:
		return "头发 + 上身"
	case DanceElementClothingSuitHJP:
		return "头发 + 上身 + 下身"
	case DanceElementClothingSuitHJPS:
		return "头发 + 上身 + 下身 + 鞋"
	case DanceElementClothingSuitJP:
		return "上身 + 下身"
	case DanceElementClothingSuitJPS:
		return "上身 + 下身 + 鞋"
	case DanceElementClothingSuitPS:
		return "下身 + 鞋"
	default:
		return "宠物光环"
	}
}

func (e DanceElementEnums) ElementType() []int {
	return []int{
		DanceElementTypeClothing,
		DanceElementTypeProps,
		DanceElementTypeOrnament,
	}
}

func (e DanceElementEnums) ElementMap() map[int]string {
	m := make(map[int]string)
	for _, s := range e.ElementType() {
		m[s] = e.ElementString(s)
	}
	return m
}

func (e DanceElementEnums) ElementString(tag int) string {
	switch tag {
	case DanceElementTypeClothing:
		return "时装"
	case DanceElementTypeProps:
		return "装饰品"
	case DanceElementTypeOrnament:
		return "道具"
	default:
		return "其他"
	}
}

func (e DanceElementEnums) ElementOrnament() []int {
	return []int{
		DanceElementOrnamentHand,
		DanceElementOrnamentBack,
		DanceElementOrnamentBase,
		DanceElementOrnamentDjBooth,
		DanceElementOrnamentDjTitle,
		DanceElementOrnamentNickname,
		DanceElementOrnamentBadge,
		DanceElementOrnamentRing,
		DanceElementOrnamentAvatarFrame,
		DanceElementOrnamentFractionBackgroundCard,
		DanceElementOrnamentRoomBackgroundCard,
		DanceElementOrnamentDynamicBackgroundCard,
		DanceElementOrnamentCpRing,
		DanceElementOrnamentCpInfoCard,
		DanceElementOrnamentCpRecordCard,
		DanceElementOrnamentChatEmojiPack,
	}
}

func (e DanceElementEnums) ElementOrnamentMap() map[int]string {
	m := make(map[int]string)
	for _, s := range e.ElementOrnament() {
		m[s] = e.ElementOrnamentString(s)
	}
	return m
}

func (e DanceElementEnums) ElementOrnamentString(tag int) string {
	switch tag {
	case DanceElementOrnamentHand:
		return "手持"
	case DanceElementOrnamentBack:
		return "背后"
	case DanceElementOrnamentBase:
		return "底座"
	case DanceElementOrnamentDjBooth:
		return "Dj台"
	case DanceElementOrnamentDjTitle:
		return "称号"
	case DanceElementOrnamentNickname:
		return "昵称特效"
	case DanceElementOrnamentBadge:
		return "徽章"
	case DanceElementOrnamentRing:
		return "戒指"
	case DanceElementOrnamentAvatarFrame:
		return "头像框"
	case DanceElementOrnamentFractionBackgroundCard:
		return "分数背景卡"
	case DanceElementOrnamentRoomBackgroundCard:
		return "房间背景卡"
	case DanceElementOrnamentDynamicBackgroundCard:
		return "动态背景卡"
	case DanceElementOrnamentCpRing:
		return "情侣戒指"
	case DanceElementOrnamentCpInfoCard:
		return "情侣信息卡"
	case DanceElementOrnamentCpRecordCard:
		return "情侣登记证"
	case DanceElementOrnamentChatEmojiPack:
		return "聊天表情包"
	default:
		return "其他"
	}
}

func (e DanceElementEnums) ElementProps() []int {
	return []int{
		DanceElementPropsRenameCard,
		DanceElementPropsHorn,
		DanceElementPropsDoubleExperience,
		DanceElementPropsSkinDye,
		DanceElementPropsIntimacy,
		DanceElementPropsWeddingCard,
		DanceElementPropsLotteryGiftPack,
		DanceElementPropsSticker,
		DanceElementPropsSeed,
	}
}

func (e DanceElementEnums) ElementPropsMap() map[int]string {
	m := make(map[int]string)
	for _, s := range e.ElementProps() {
		m[s] = e.ElementPropsString(s)
	}
	return m
}

func (e DanceElementEnums) ElementPropsString(tag int) string {
	switch tag {
	case DanceElementPropsRenameCard:
		return "改名卡"
	case DanceElementPropsHorn:
		return "喇叭"
	case DanceElementPropsDoubleExperience:
		return "双倍经验卡"
	case DanceElementPropsSkinDye:
		return "皮肤染色剂"
	case DanceElementPropsIntimacy:
		return "亲密度"
	case DanceElementPropsWeddingCard:
		return "喜帖"
	case DanceElementPropsLotteryGiftPack:
		return "抽奖礼包"
	case DanceElementPropsSticker:
		return "贴纸"
	case DanceElementPropsSeed:
		return "种子"
	default:
		return "其他"
	}
}

func (e DanceElementEnums) ElementSex() []int {
	return []int{
		DanceElementSexMan,
		DanceElementSexWoman,
	}
}

func (e DanceElementEnums) ElementSexMap() map[int]string {
	m := make(map[int]string)
	for _, s := range e.ElementSex() {
		m[s] = e.ElementSexString(s)
	}
	return m
}

func (e DanceElementEnums) ElementSexString(tag int) string {
	switch tag {
	case DanceElementSexMan:
		return "男"
	case DanceElementSexWoman:
		return "女"
	default:
		return "其他"
	}
}
